Before the widespread use of computers by graphic artists, the traditional work flow in commercial printing involved digitally scanning a hard copy of the artist's original artwork, retouching or otherwise modifying the resulting pixel image, and printing it. Today, however, a commercial printer often receives from his customers digital art in the form of an electronic file, and such a file commonly contains commands written in a page description language (PDL) such as the Postscript.RTM., developed by Adobe Systems, Inc. Typically, the customer or his artist uses a graphic design computer program to create and edit graphical objects which form elements of the artwork. Such design programs have internal formats for representing the graphical elements in the artwork. In order to electronically save, transmit, display, or print the artwork, such graphic design programs usually generate a PostScript or other common PDL file which contains commands representing the graphical objects. To view or print the artwork, the PDL commands are sent to a raster image processor (RIP) which interprets the PostScript commands and generates the specific signals which allow an output device to render the graphical objects. For example, the RIP may be part of a workstation and the output device may be a display screen. If a high quality or complex print is not required, a PostScript file might be printed by transmitting it to a laser printer which commonly contains a RIP for interpreting the PostScript and generating the appropriate signals for the printer to render a laser printed image. For high quality prints, or for printing very complex artwork, common laser printers are usually insufficient. In this case, the PostScript file is delivered to a commercial printer whose task is to make a high quality print of the art described in the PostScript file. His work also requires a PostScript interpreter and a RIP, but may involve various intermediate stages for preparing the artwork for printing. There is no way, however, of knowing in advance the complexity of such a file without first RIPing the file. Although the page (the "job") may be processed by RIPing the PostScript and preparing the resulting pixel image for printing just as if it were scanned from a hardcopy, this method has the disadvantage that the conversion to pixel images destroys the original structure of the graphical objects. Consequently, the objects are very difficult to isolate, scale, rotate, or otherwise modify.
It would be desirable to be able to edit the artwork file as a graphical object file rather than as a pixel image file. In order to obtain the same level of editability as was present in the native graphic design program, however, the commercial printer presently needs to have an entire array of such graphic design programs, including all their respective versions, as well as people skilled in using them and all the hardware required to run them. This solution is obviously expensive, awkward, and burdensome. There are many reasons why the commercial printer finds it necessary or desirable to edit or otherwise improve the PostScript files that are provided by his customers for printing. The first class of problems stems from constraints imposed by the printing process itself. For example, the printing process may not be able to render lines whose thicknesses are below a minimum threshold. Registration errors inherent in the printing process may create undesirable gaps between objects which touch but do not overlap each other, e.g., tight continuous tone clips. The printing process may also be limited by the number of available inks. Since these and other limitations may not be known or recognized by the graphic artist, who may be skilled in the art of design, but have limited knowledge of the printing process, the artwork may not print as intended.
Another class of problems is irrelevance and unnecessary complexity in the original PostScript file. When creating the artwork, the artist might lay numerous objects on top of each other during the design process. Consequently, the PostScript file may contain many unnecessary commands for creating objects that never appear in the rendered output. In addition to cluttering and lengthening the PostScript file, such hidden or masked objects slow down the PostScript interpretation process. Other types of irrelevant objects may also slow down interpretation and clutter the file. For example, a file may contain masks or clips that have no visible effect. Although some of these problems are created by the artists, many are generated by the native graphic design program when the PostScript file is generated. Because the design programs often represent graphical objects in a native file format which differs from PostScript, the graphical objects in the PostScript file are often corrupted or altered when they are converted from one format to the other. These corruptions often result in unnecessarily complex objects that complicate the PostScript file. For example, when the PostScript file is generated, a single object with two attributes may be split into two objects. Strokes may be converted to filled contours, and tints of the same color may be treated as independent colors. These and other complexities present in the PostScript file slow the interpretation of the PostScript file and make editing and printing the file difficult.